Today, many conventional computer systems employ graphical user interfaces (GUIs) which users may use to interact with the systems. GUIs often employ graphical elements, such as images, widgets, icons and the like, which may represent information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements.
Many GUIs employ windows which are often used by applications running on a computer system to interact with users. Here, a window may be defined as a visual area, usually rectangular in shape, that contains an interface that may be used to display the output and/or allow the input of information associated with the applications. GUIs that employ windows are often called windowing systems. Examples of windowing systems include, e.g., the X windows system and Microsoft Windows.
Typical windowing systems employ window managers to control the placement and appearance of windows on a display. The display may include a desktop which is an area that is displayed behind the windows. In a typical arrangement, the window manager displays the windows on top of the desktop by “overlaying” areas of the desktop with the windows such that the windows are seen but not the areas of the desktop behind the windows.
Many window managers include functions that enable windows to be added and deleted from a display. For example, a window manager may contain a function that may be called (invoked) by an application to create a window at a particular location of the display. Likewise, a window manager may contain a function that enables an application to direct the window manager to remove a window from the display. Often when a window is created for an application, the window manager usually renders only a frame for the window on the display. After rendering the frame, the window manager may then notify the application that the frame has been rendered. After receiving the notification the application may render application specific information within the window's frame.
Typical user interfaces (e.g., GUIs) often times implement a page metaphor, in which transitions from one state to another result in the previous page disappearing and being replaced with a new page. With traditional web content and application interfaces, a user selects an item from a list of available options and the display is refreshed such that the display presents to the user an updated view. Typically the entire page is refreshed. In some scenarios, a bread crumb trail or meta navigation is provided which allows the user to find their way back to where they came from.
Additionally, current computer networks allow the distribution of information between many numbers of computer systems. Various computer program applications (i.e. software) and data communications protocols support a wide variety of different types of data communications and information exchange. As an example, a computer user using a web browser software application that operates on a local computer system can communicate using a hypertext transport protocol with remote computer systems known as web servers over a computer network such as the Internet to obtain web page content for viewing by the user on a local computer system. Other types of communication mechanisms include electronic mail, instant messaging, voice over network communication, and so forth.
One type of communication mechanism that is becoming popular is “syndicated streaming” or “feed” communication that allows a computer program known as a streaming feed reader or aggregator to operate on a networked computer system to periodically check a list of syndicated stream data “feeds” on behalf of a user and display any updated articles or other content that the application finds within those feeds. Feed readers or aggregators are able to subscribe to streaming data feeds that are essentially specially formatted files provided from remote computer systems such as web sites or other servers that are of interest to a user operating the aggregator. A set of standardized data formats collectively known as Really Simple Syndication (RSS) provide a simple extensible markup language (XML) based system that allows content or feed providers to identify available “channels” of content items in one of the RSS formats and allows users to subscribe to their favorite websites using the aggregator application. The aggregator is able to read the RSS formatted feed(s) selected by the user to list available content items within each channel (i.e. within each feed) for viewing by the user. Using RSS, webmasters or other content providers can thus put their content items into a standardized RSS data format (e.g., an XML format conforming to standard tags and conventions to list and describe content items), which can be accessed, viewed and organized through RSS-aware aggregator software or automatically conveyed as new content on another website.
A typical RSS streaming data feed comprises an XML file that defines a channel, and RSS standardized tags to define a title, link, description, and other optional fields/tags, followed by a series of content items, each of which have a set of tags used to indicate a title, link, and description of that content item. There can be many sets of content items (i.e. title, link and description tags with other optional fields/tags) in a single feed file and the RSS formatted files conform to one of several different standard RSS XML data formats (examples of which include RSS 1.0, RSS 2.0, Atom 0.3, and Atom 1.0). It is now common to find RSS (examples of which include RSS 1.0, RSS 2.0, Atom 0.3, and Atom 1.0) web feeds available for access on major or popular websites as well as on many smaller or less popular ones. RSS-aware aggregator or feed reader programs are available for download to various operating systems such as Windows and MacOS. Client-side RSS-based readers and aggregators are typically constructed as standalone programs or extensions to existing programs such as web browsers and are able to interpret the RSS data format to present the channels and associated content items for selection by a user for viewing.
Any type of content that can be broken down into discrete content items can be syndicated via RSS. As an example, content such as recent changes to a web page such as a weblog, a revision history of a book, new episodes of a TV show, new songs available from an artist, or the like can each be identified and formatted into an RSS feed. Once information about each content item is in RSS format, an RSS-aware program such as an aggregator can periodically check one or more feeds for changes and react to the changes in an appropriate way such as by displaying the newly available content selections for access by the user. Popular websites that are continuously developing new content for viewing by a user utilize RSS streaming data feeds to publish the content for access by aggregator applications operated by users who are interested in keeping up with current content available from those sites. A user may subscribe to many different feeds, each also known as a channel.
A typical aggregator program provides a graphical user interface that includes multiple display regions. A channel display region identifies various RSS feeds or “channels” that the user has configured the aggregator to obtain. When a user selects a particular channel in the channel display region, a content item selection region of the graphical user interface displays content items (e.g. as thumbnail icons, lists, or other list-oriented views) available from the channel (i.e., items described in the RSS data format for that feed). As an example, if the user selects a news channel from the channel selection region, the aggregator application will obtain the current RSS feed for that news channel and will display available content selections such as recent new stories within the content selection region. Each content item can be shown, for example, as a thumbnail or icon or textual line item representing content available for presentation to the user if the user were to chose that content item icon. The content item selections for a particular channel are independently identified within the RSS data format. Once the content items for a particular channel are shown for selection by the user, the user may then select a particular content item from the content selection region. In response, the aggregator will then obtain that item of content (e.g., by referencing a URL encoded within the RSS data format for that content item) and will play or otherwise reproduce or present that content in a content presentation display region (e.g., a play window) on the graphical user interface of the aggregator. Often the content items are videos or multimedia presentations, though they may be simply web pages or static text or audio. If the user selects a different channel from the channel selection region, the aggregator will read the current feed for that channel and change the content items within the content selection region to show the current content items available for the new channel selection. Again, the user may select a particular content item associated with that channel for viewing and the aggregator will access that particular content item and play that content in the content presentation region.